<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>简介</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="book.session.html">« Sessions</a></li>
      <li style="float: right;"><a href="session.setup.html">安装/配置 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.session.html">Sessions</a></li>
    <li>简介</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="intro.session" class="preface">
  <h1 class="title">简介</h1>
  <p class="para">
   会话支持在 PHP 中是在并发访问时由一个方法来保存某些数据.从而使你能够构建更多的定制程序
   从而提高你的 web 网站的吸引力.
  </p>
  <p class="para">
   一个访问者访问你的 web 网站将被分配一个唯一的 id, 就是所谓的会话 id. 
   这个 id 可以存储在用户端的一个 cookie 中，也可以通过 URL 进行传递.
  </p>
  <p class="para">
   会话支持允许你将请求中的数据保存在超全局数组<var class="varname"><a href="reserved.variables.session.html" class="classname">$_SESSION</a></var>中.
   当一个访问者访问你的网站，PHP 将自动检查(如果 <a href="session.configuration.html#ini.session.auto-start" class="link">session.auto_start</a>
   被设置为 1）或者在你要求下检查(明确通过 
   <span class="function"><a href="function.session-start.html" class="function">session_start()</a></span> 
   或者隐式通过 <span class="function"><strong>session_register()</strong></span>) 当前会话 id 是否是先前发送的请求创建. 如果是这种情况，
   那么先前保存的环境将被重建.
  </p>
  <div class="caution"><strong class="caution">警告</strong>
   <p class="para">
    如果你打开了 <a href="session.configuration.html#ini.session.auto-start" class="link">session.auto_start</a> 那么
    将对象放入会话的唯一方法是使用 <a href="ini.core.html#ini.auto-prepend-file" class="link">auto_prepend_file</a>
    来加载定义这个对象的类，其中，在加载的定义的类时，你不得不使用 <span class="function"><a href="function.serialize.html" class="function">serialize()</a></span>
    你得对象，并且事后 <span class="function"><a href="function.unserialize.html" class="function">unserialize()</a></span> 它.
   </p>
  </div>
  <p class="para">
   <var class="varname"><a href="reserved.variables.session.html" class="classname">$_SESSION</a></var> (和所有已注册得变量) 将被 PHP 使用内置的序列化方法在请求完成时
   进行序列化.序列化方法可以通过 <a href="session.configuration.html#ini.session.serialize-handler" class="link">session.serialize_handler</a> 
   这个 PHP 配置选项中来设置一个指定的方法.注册的变量未定义将被标记为未定义.在并发访问时,这些变量不会被会话模块
   定义除非用户后来定义了它们.
  </p>
  <div class="warning"><strong class="warning">警告</strong>
   <p class="para">
    因为会话数据是被序列化的，<span class="type">resource</span> 变量不能被存储在会话中.
   </p>
   <p class="para">
     序列化句柄 (<code class="literal">php</code>
     和 <code class="literal">php_binary</code>) 会受到 register_globals 的限制.
     而且，数字索引或者字符串索引包含的特殊字符(<code class="literal">|</code>
     和 <code class="literal">!</code>) 不能被使用. 使用这些字符将脚本执行关闭时的最后出现错误.
     <code class="literal">php_serialize</code> 没有这样的限制.<code class="literal">php_serialize</code> 从
     PHP 5.5.4 以后可用.
   </p>
  </div>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    请注意当会话工作时，会话的记录并没有被创建
    直到一个变量已经被使用 <span class="function"><strong>session_register()</strong></span>
    注册或者被添加一个新元素到 <var class="varname"><a href="reserved.variables.session.html" class="classname">$_SESSION</a></var> 全局数组中.
    这点一直有效，无论是否使用 <span class="function"><a href="function.session-start.html" class="function">session_start()</a></span> 函数
    来开始会话.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    在 PHP 5.2.2 有一个没有在文档中说明的特性是用文件存储时，即使是
    在 <a href="ini.core.html#ini.open-basedir" class="link">open_basedir</a> 被启用，并且 &quot;/tmp&quot; 没有被添加到
    允许路径列表中，也能将会话存储到 &quot;/tmp&quot; 目录. 
    这个特性在 PHP 5.3.0 时已经从 PHP 中被移除了.
   </p>
  </p></blockquote>
 </div></div></div></body></html>